Multi-core SoC (System on Chip), including NoC (Network on Chip) is a system or network with two or more independent processor cores. Many core SoC comprises even more processor cores and is designed for a high degree of parallel processing. Many core SoC may comprise a larger number of independent processor cores (e.g. 10s, 100s, or 1,000s) compared with multi-core. Many core are used extensively in embedded computers and high-performance computing.
For multi-core and many core SoC (System on Chip), including NoC (Network on Chip), it is very common to employ one or more shared memory bank controller(s) on chip where many masters work together with the same shared data/information. Shared memory thus is a key component, and its efficiency and performance directly affect the overall SoC performance.
Many core SoC, including NoC, quickly takes over multi-core as the mainstream for the semiconductor industry by taking the advantages of the ever shrinking semiconductor geometry and more parallelism enabled system and software implementation. To efficiently harvest the performance gains enabled by many core SoC/NoC, a high efficient shared memory controller become an imperative requirement. The more masters, such as Central Processing Unit (CPU)/Digital Signal Processing (DSP) cores, hardware accelerators, data movement agent (DMA), could access a shared memory controller with good quality of service (QoS), the better overall performance we would obtain from system perspective. However in reality, the more masters try to share a common memory, the worse QoS would be observed with conventional architecture.